home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 April: Mac OS SDK / Dev.CD Apr 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / PInterfaces / QD3DShader.p < prev    next >
Encoding:
Text File  |  1998-08-17  |  6.5 KB  |  150 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        QD3DShader.p
  3.  
  4.      Contains:    QuickDraw 3D Shader / Color Routines                            
  5.  
  6.      Version:    Technology:    Quickdraw 3D 1.5.4
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT QD3DShader;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __QD3DSHADER__}
  27. {$SETC __QD3DSHADER__ := 1}
  28.  
  29. {$I+}
  30. {$SETC QD3DShaderIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __QD3D__}
  34. {$I QD3D.p}
  35. {$ENDC}
  36.  
  37.  
  38. {$PUSH}
  39. {$ALIGN POWER}
  40. {$LibExport+}
  41.  
  42. {*****************************************************************************
  43.  **                                                                             **
  44.  **                                RGB Color routines                             **
  45.  **                                                                             **
  46.  ****************************************************************************}
  47. FUNCTION Q3ColorRGB_Set(VAR color: TQ3ColorRGB; r: Single; g: Single; b: Single): TQ3ColorRGBPtr; C;
  48. FUNCTION Q3ColorARGB_Set(VAR color: TQ3ColorARGB; a: Single; r: Single; g: Single; b: Single): TQ3ColorARGBPtr; C;
  49. FUNCTION Q3ColorRGB_Add({CONST}VAR c1: TQ3ColorRGB; {CONST}VAR c2: TQ3ColorRGB; VAR result: TQ3ColorRGB): TQ3ColorRGBPtr; C;
  50. FUNCTION Q3ColorRGB_Subtract({CONST}VAR c1: TQ3ColorRGB; {CONST}VAR c2: TQ3ColorRGB; VAR result: TQ3ColorRGB): TQ3ColorRGBPtr; C;
  51. FUNCTION Q3ColorRGB_Scale({CONST}VAR color: TQ3ColorRGB; scale: Single; VAR result: TQ3ColorRGB): TQ3ColorRGBPtr; C;
  52. FUNCTION Q3ColorRGB_Clamp({CONST}VAR color: TQ3ColorRGB; VAR result: TQ3ColorRGB): TQ3ColorRGBPtr; C;
  53. FUNCTION Q3ColorRGB_Lerp({CONST}VAR first: TQ3ColorRGB; {CONST}VAR last: TQ3ColorRGB; alpha: Single; VAR result: TQ3ColorRGB): TQ3ColorRGBPtr; C;
  54. FUNCTION Q3ColorRGB_Accumulate({CONST}VAR src: TQ3ColorRGB; VAR result: TQ3ColorRGB): TQ3ColorRGBPtr; C;
  55. {  Q3ColorRGB_Luminance really returns a pointer to a Single }
  56. FUNCTION Q3ColorRGB_Luminance({CONST}VAR color: TQ3ColorRGB; VAR luminance: Single): Ptr; C;
  57. {*****************************************************************************
  58.  **                                                                             **
  59.  **                                Shader Types                                 **
  60.  **                                                                             **
  61.  ****************************************************************************}
  62.  
  63. TYPE
  64.     TQ3ShaderUVBoundary         = LONGINT;
  65. CONST
  66.     kQ3ShaderUVBoundaryWrap        = {TQ3ShaderUVBoundary}0;
  67.     kQ3ShaderUVBoundaryClamp    = {TQ3ShaderUVBoundary}1;
  68.  
  69.  
  70. {*****************************************************************************
  71.  **                                                                             **
  72.  **                                Shader Routines                                 **
  73.  **                                                                             **
  74.  ****************************************************************************}
  75. FUNCTION Q3Shader_GetType(shader: TQ3ShaderObject): TQ3ObjectType; C;
  76. FUNCTION Q3Shader_Submit(shader: TQ3ShaderObject; view: TQ3ViewObject): TQ3Status; C;
  77. FUNCTION Q3Shader_SetUVTransform(shader: TQ3ShaderObject; {CONST}VAR uvTransform: TQ3Matrix3x3): TQ3Status; C;
  78. FUNCTION Q3Shader_GetUVTransform(shader: TQ3ShaderObject; VAR uvTransform: TQ3Matrix3x3): TQ3Status; C;
  79. FUNCTION Q3Shader_SetUBoundary(shader: TQ3ShaderObject; uBoundary: TQ3ShaderUVBoundary): TQ3Status; C;
  80. FUNCTION Q3Shader_SetVBoundary(shader: TQ3ShaderObject; vBoundary: TQ3ShaderUVBoundary): TQ3Status; C;
  81. FUNCTION Q3Shader_GetUBoundary(shader: TQ3ShaderObject; VAR uBoundary: TQ3ShaderUVBoundary): TQ3Status; C;
  82. FUNCTION Q3Shader_GetVBoundary(shader: TQ3ShaderObject; VAR vBoundary: TQ3ShaderUVBoundary): TQ3Status; C;
  83.  
  84. {*****************************************************************************
  85.  **                                                                             **
  86.  **                            Illumination Shader    Classes                         **
  87.  **                                                                             **
  88.  ****************************************************************************}
  89. FUNCTION Q3IlluminationShader_GetType(shader: TQ3ShaderObject): TQ3ObjectType; C;
  90. FUNCTION Q3PhongIllumination_New: TQ3ShaderObject; C;
  91. FUNCTION Q3LambertIllumination_New: TQ3ShaderObject; C;
  92. FUNCTION Q3NULLIllumination_New: TQ3ShaderObject; C;
  93.  
  94. {*****************************************************************************
  95.  **                                                                             **
  96.  **                                 Surface Shader                                 **
  97.  **                                                                             **
  98.  ****************************************************************************}
  99. FUNCTION Q3SurfaceShader_GetType(shader: TQ3SurfaceShaderObject): TQ3ObjectType; C;
  100.  
  101. {*****************************************************************************
  102.  **                                                                             **
  103.  **                                Texture Shader                                 **
  104.  **                                                                             **
  105.  ****************************************************************************}
  106. FUNCTION Q3TextureShader_New(texture: TQ3TextureObject): TQ3ShaderObject; C;
  107. FUNCTION Q3TextureShader_GetTexture(shader: TQ3ShaderObject; VAR texture: TQ3TextureObject): TQ3Status; C;
  108. FUNCTION Q3TextureShader_SetTexture(shader: TQ3ShaderObject; texture: TQ3TextureObject): TQ3Status; C;
  109.  
  110. {*****************************************************************************
  111.  **                                                                             **
  112.  **                                Texture Objects                                 **
  113.  **                                                                             **
  114.  ****************************************************************************}
  115. FUNCTION Q3Texture_GetType(texture: TQ3TextureObject): TQ3ObjectType; C;
  116. FUNCTION Q3Texture_GetWidth(texture: TQ3TextureObject; VAR width: UInt32): TQ3Status; C;
  117. FUNCTION Q3Texture_GetHeight(texture: TQ3TextureObject; VAR height: UInt32): TQ3Status; C;
  118.  
  119. {*****************************************************************************
  120.  **                                                                             **
  121.  **                                Pixmap Texture                                 **
  122.  **                                                                             **
  123.  ****************************************************************************}
  124. FUNCTION Q3PixmapTexture_New({CONST}VAR pixmap: TQ3StoragePixmap): TQ3TextureObject; C;
  125. FUNCTION Q3PixmapTexture_GetPixmap(texture: TQ3TextureObject; VAR pixmap: TQ3StoragePixmap): TQ3Status; C;
  126. FUNCTION Q3PixmapTexture_SetPixmap(texture: TQ3TextureObject; {CONST}VAR pixmap: TQ3StoragePixmap): TQ3Status; C;
  127.  
  128. {*****************************************************************************
  129.  **                                                                             **
  130.  **                                Mipmap Texture                                 **
  131.  **                                                                             **
  132.  ****************************************************************************}
  133. FUNCTION Q3MipmapTexture_New({CONST}VAR mipmap: TQ3Mipmap): TQ3TextureObject; C;
  134. FUNCTION Q3MipmapTexture_GetMipmap(texture: TQ3TextureObject; VAR mipmap: TQ3Mipmap): TQ3Status; C;
  135. FUNCTION Q3MipmapTexture_SetMipmap(texture: TQ3TextureObject; {CONST}VAR mipmap: TQ3Mipmap): TQ3Status; C;
  136.  
  137.  
  138.  
  139.  
  140. {$ALIGN RESET}
  141. {$POP}
  142.  
  143. {$SETC UsingIncludes := QD3DShaderIncludes}
  144.  
  145. {$ENDC} {__QD3DSHADER__}
  146.  
  147. {$IFC NOT UsingIncludes}
  148.  END.
  149. {$ENDC}
  150.